package pe.com.chilis.delivery.negocio;

import java.util.ArrayList;

import pe.com.chilis.delivery.beans.BCliente;
import pe.com.chilis.delivery.beans.BDetallePedido;
import pe.com.chilis.delivery.beans.BPedido;
import pe.com.chilis.delivery.beans.BProducto;
import pe.com.chilis.delivery.dao.implementacion.ImplDespachadorPedido;
import pe.com.chilis.delivery.dao.interfaz.IDespachadorPedido;
import pe.com.chilis.delivery.log.UtilLog;

public class NPedido {

	public static long registrarPedido(BPedido pedido){
		long resultado = 0;
		
		try {
			UtilLog.imprimeLog("Iniciando operacion registrarPedido()");
			IDespachadorPedido objIDespachadorPedido = new ImplDespachadorPedido(); 
			
			resultado = objIDespachadorPedido.registrarPedido(pedido);
			UtilLog.imprimeLog("operacion registrarPedido() finalizada");
		} catch (Exception e) {
			UtilLog.imprimeExcepcion(e);
		}
		return resultado;
	}
	
	public static ArrayList<BPedido> listaPedidosPorCliente(BPedido pedido){
		ArrayList<BPedido> lstPedidos = new ArrayList<BPedido>();
		try {
			IDespachadorPedido objIDespachadorPedido = new ImplDespachadorPedido();
			lstPedidos = objIDespachadorPedido.buscarPedidoPorCliente(pedido);
		} catch (Exception e) {
			UtilLog.imprimeExcepcion(e);
		}
		return lstPedidos;
	}
	
	public static ArrayList<BDetallePedido> listarDetallePedido(BPedido pedido){
		ArrayList<BDetallePedido> lstDetallePedidos = new ArrayList<BDetallePedido>();
		try {
			IDespachadorPedido objIDespachadorPedido = new ImplDespachadorPedido();
			lstDetallePedidos = objIDespachadorPedido.buscarDetallePedidoPorPedido(pedido);
			
			ArrayList<BProducto> lstProductos = NProducto.buscarProductos("");
			
			for(BDetallePedido detalle : lstDetallePedidos){
				for(BProducto prod : lstProductos){
					if(detalle.getIdProducto().equals(prod.getIdProducto())){
						detalle.setProducto(prod);
						break;
					}
				}
			}
			
		} catch (Exception e) {
			UtilLog.imprimeExcepcion(e);
		}
		return lstDetallePedidos;
	}
	
	public final static boolean isNumeric(String cadena){
		try {
			Integer.parseInt(cadena);
			return true;
		} catch (NumberFormatException nfe){
			return false;
		}
	}
}
